
/*-----------------------------------------------------------------------------\
|                          ChipCFlow Block2Code V1.0                           |
|                                                                              |
| Desenvolvedor: Felipe Simões Lage Gomes Duarte                               |
| Orientador: Prof. Dr. Jorge Luiz e Silva                                     |
| Supervisor: Bruno de Abreu Silva                                             |
|	      Joelmir José Lopes                                               |
|                                                                              |
| Main Project: ChipCflow                                                      |
| Período: Agosto de 2009 a Julho de 2010                                      |
| Codigo: Conector.java                                                      |
| Versão da IDE: NetBeans IDE 6.8 (Build 200912041610)                         |
| Java: 1.6.0_18; Java HotSpot(TM) Client VM 16.0-b13                          |
| Sistema Operacional: Windows 7 versão 6.1 executando em x86; pt_BR           |
|                                                                              |
|             O presente trabalho foi realizado com apoio do CNPq              |
|   Conselho Nacional de Desenvolvimento Científico  e Tecnológico - Brasil    |
\-----------------------------------------------------------------------------*/
package components;//Nome do pacote de dados.

import java.awt.Point;
import java.io.Serializable;

public class Conector implements Serializable {

  private Point p;
  private int type;//determina o tipo de conector
  //tipo de conector
  public static int IN = 1;
  public static int OUT = 2;
  public static int CONTROL = 3;
  public static int BARRAMENTO = 4;
  private boolean Conected;//esta ou nao conectado
  private int componentIndex;//indice do vetor de components no qual ele se conecta

  public Conector(int type, Point p) {
    this.p = p;
    this.type = type;
    this.Conected = false;
    this.componentIndex = -1;
  }

  public int getComponentIndex() {
    return componentIndex;
  }

  public void setComponentIndex(int componentIndex) {
    this.componentIndex = componentIndex;
  }

  public boolean isConected() {
    return Conected;
  }

  public void setConected(boolean Conected) {
    this.Conected = Conected;
  }

  public int getX() {
    return p.x;
  }

  public void setX(int x) {
    this.p.x = x;
  }

  public int getY() {
    return p.y;
  }

  public void setY(int y) {
    this.p.y = y;
  }

  public void setCoordenada(int x, int y) {
    this.p.x = x;
    this.p.y = y;
  }

  public void disconect() {
    this.Conected = false;
    this.componentIndex = -1;
  }

  public void conect(int x, int y, int componentIndex) {
    this.p.x = x;
    this.p.y = y;
    this.Conected = true;
    this.componentIndex = componentIndex;
  }

  public void conect(int componentIndex) {
    this.Conected = true;
    this.componentIndex = componentIndex;
  }

  void setPoint(Point P) {
    this.p = P;
  }

  Point getPoint() {
    return p;
  }
}
